import allure
from airtest.core.api import *

from common.airtest.airtest_base import AirtestBase, exists_1
from common.log.log import log
from config.conf import BASE_DIR


class MyAddressPage:
    """我的地址页"""

    @allure.step('个人中心-我的地址-添加新地址')
    def add_address(self, name='张三', iphone_number='18612345678', address='人民路10号'):
        """个人中心-我的地址-添加新地址"""
        try:
            log.info('个人中心-我的地址：添加新的地址')
            AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的地址页/添加新地址.png")
            AirtestBase().click_5_input(name, BASE_DIR + r"/element_picture/我的/我的地址页/请输入姓名.png")
            AirtestBase().click_5_input(iphone_number, BASE_DIR + r"/element_picture/我的/我的地址页/请输入联系电话.png")
            AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的地址页/所在地区.png")
            AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的地址页/确定.png")
            AirtestBase().click_5_input(address, BASE_DIR + r"/element_picture/我的/我的地址页/请填写具体地址.png")
            AirtestBase().click_5(BASE_DIR + r"/element_picture/我的/我的地址页/立即保存按钮.png")
            return MyAddressPage()
        except Exception as e:
            log.error(f'个人中心-我的地址-添加新地址出现异常为：{e}')
            raise e

    @allure.step('个人中心-我的地址-编辑地址')
    def edit_address(self):
        """个人中心-我的地址-编辑地址"""
        try:
            log.info('个人中心-我的地址-编辑地址')

        except Exception as e:
            log.error(f'个人中心-我的地址-编辑地址出现异常为：{e}')
            raise e

    @allure.step('个人中心-我的地址-删除地址')
    def rmv_address(self):
        """个人中心-我的地址-删除地址"""
        try:
            log.info('个人中心-我的地址')
            element_1 = BASE_DIR + r"/element_picture/我的/我的地址页/删除按钮.png"
            for i in range(10):
                if exists_1(element_1):
                    log.info('存在地址，进行删除操作')
                    AirtestBase().click_5(element_1)
                    sleep(3)
                else:
                    log.info('已经没有地址了！！')
                    break
        except Exception as e:
            log.error(f'个人中心-我的地址-删除地址出现异常为：{e}')
            raise e
